package Homework;

public class ArrayOperation {

	static void printArray(int array[])
	{
		if(array!=null)
		{
			for(int i=0;i<array.length;i++)
			{
				System.out.print(array[i]+"  ");
			}
		}
	}
	
//	static int[] copyOf(int orginial[],int newlength)
//	{
//		int length = newlength;
//		if(newlength>orginial.length)
//		{
//			length = orginial.length;
//		}
//		int array[] = new int[length];
//		for(int i=0;i<length;i++)
//		{
//			array[i] = orginial[i];
//		}
//		return array;
//	}
	
	
	static int[] copyOf(int orginial[],int start_copy_index,int star_store_index,int count)
	{
		if(count>orginial.length-star_store_index)  //当输出元素个数超过原有数组中能被取到的数情况
		{
			//① 输出元素个数超过原有数组中能被取到的数时，默认取出原有数组中能取到的所有数
			int array[] = new int[orginial.length-1];
			for(int i=start_copy_index,j=star_store_index;i<array.length;i++,j++)
			{
				array[i] = orginial[j];
			}
			//重新copy操作
			int newarray[] = new int[array.length-start_copy_index];
			for(int i=0,j=start_copy_index;i<newarray.length;i++,j++)
			{
				newarray[i] = array[j];
			}
			return newarray;
			
			//② 输出元素个数超过原有数组中能被取到的数时，默认返回一个null，根据需求所定。
//			System.out.println("所取元素个数超过原有数组中能取到的数");
//			return null;
		}
		
		else  //当输出元素个数不大于原有数组中能被取到的数情况
		{
			//当输出元素小于等于0个时，默认返回一个null,根据需求所定
			if(count<=0)
			{
				System.out.println("输出元素个数为0");
				return null;
			}
			else
			{	
				int array[] = new int[count+start_copy_index];
				for(int i=start_copy_index,j=star_store_index;i<array.length;i++,j++)
				{
					array[i] = orginial[j];
				}
				
				//重新copy操作
				int newarray[] = new int[count];
				for(int i=0,j=start_copy_index;i<newarray.length;i++,j++)
				{
					newarray[i] = array[j];
				}
				return newarray;
			}
		}
		
		//return array;
	}
}
